Fix security context missing in Doctrine entity listeners after kernel reboot#236
Open
TavoNiievez wants to merge 1 commit into
Open
Conversation
02e8c6b to
aeb6265
Compare
…l reboot _getEntityManager() persisted the EntityManager as a permanent service, so it was carried across kernel reboots and re-injected into the freshly booted container. An EntityManager cannot survive a reboot: its ListenersInvoker is bound (readonly) to the container it was built in, so lazy entity listeners resolve dependencies like security.token_storage from that now-stale container. The logged-in user was therefore invisible inside the listener while visible in the controller. In pure Symfony (WebTestCase) there is no reboot, one container, so listener and controller share the same context. Fix: resolve the EntityManager fresh from the current container on every call instead of caching it as a permanent service. Only doctrine.dbal.default_connection stays persistent, which is what keeps the open test transaction alive across reboots; the freshly rebuilt EntityManager runs on top of it, with every dependency (security included) wired to the current request. This also keeps the module's Doctrine helpers and the application on a single identity map, matching pure Symfony. Fixes #34
aeb6265 to
d72a2d3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #34